package com.tbit.main.dao.core;

import com.tbit.main.pojo.BatteryMachine;
import com.tbit.main.pojo.PowerChangeLogSta;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author LMY
 * @create 2021-05-27 13:42
 * 车辆电池绑定
 */
public interface BatteryMachineDao {

    /**
     * 添加
     *
     * @param batteryMachine
     */
    void insert(BatteryMachine batteryMachine);

    /**
     * 修改
     *
     * @param map
     */
    void update(Map<String, Object> map);

    /**
     * 根据车辆编号查询
     *
     * @param machineId
     * @return
     */
    BatteryMachine getByMachineId(Integer machineId);

    /**
     * 按时间分组统计
     *
     * @param params
     * @return
     */
    List<PowerChangeLogSta> groupByTime(Map<String, Object> params);

    /**
     * 根据时间查询
     *
     * @param params
     * @return
     */
    List<BatteryMachine> getByTime(Map<String, Object> params);

    /**
     * 根据电池id批量查询电池绑定
     *
     * @param batterIds
     * @return
     */
    List<BatteryMachine> getByBatterIds(List<Integer> batterIds);

    /**
     * 根据电池编号查询
     *
     * @param batteryNO
     * @return
     */
    BatteryMachine getByBatteryNO(String batteryNO);

    /**
     * 根据运营区域查询
     *
     * @param accountId
     * @return
     */
    List<BatteryMachine> getByAccountId(Integer accountId);

    /**
     * 根据分区查询
     *
     * @param regionIds
     * @return
     */
    List<BatteryMachine> getByRegionIds(@Param("regionIds") String regionIds);

    /**
     * 根据车辆ids查询
     *
     * @param machineIds
     * @return
     */
    List<BatteryMachine> getByMachineIds(@Param("machineIds") String machineIds);
}
